package it.probabili.formazioni.test;
import it.probabili.formazioni.download.xml.DownloadXML;
import it.probabili.formazioni.elabora.ElaboraFormazioniHTML;
import it.probabili.formazioni.elabora.ElaboraFormazioniXml;
import it.probabili.formazioni.utility.Utils;
import it.probabili.formazioni.vo.Giornata;
import it.probabili.formazioni.vo.Match;
import it.probabili.formazioni.vo.Squadra;

import java.net.URL;
import java.util.Iterator;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.jsoup.Jsoup;
import org.w3c.dom.Document;

public class Esegui {
	public static void main(String[] args) {
		try {
			
			Giornata giornata = new Giornata();
			Squadra squadra = null;
			Match partita;
			
			DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance();
			DocumentBuilder builder = documentFactory.newDocumentBuilder();
			List<String> listaSquadre = DownloadXML.generaListaIndirizzi("gazzetta");
			
			if(!listaSquadre.isEmpty()){
				URL url = null;
				Iterator<String> it = listaSquadre.iterator();
				Document document = null;
				String nomeSquadra;
				String match;
				while(it.hasNext()){
					url = new URL(it.next());
					document = builder.parse(DownloadXML.downloadFromUrl(url));
					
					if(Utils.isNotEmpty(document)){
						nomeSquadra = document.getElementsByTagName("squadra").item(0).getTextContent();
						match = document.getElementsByTagName("partita").item(0).getTextContent();
						
						if(Utils.isNotEmpty(nomeSquadra)){
							squadra = new Squadra(nomeSquadra,url);
							ElaboraFormazioniXml.generaSquadra(squadra, document);
							
							if(Utils.isNotEmpty(match)){
								partita = new Match(match);
								giornata.addMatch(partita);
								giornata.addSquadra(squadra,partita);
							}
						}
					}

				}
				
			}
			
			giornata.getMatchBySquadra("verona").printMatch(true);
			String testata = "corrieredellosport";
			listaSquadre = DownloadXML.generaListaIndirizzi(testata);
			//test singolo match
			String link = "http://www.corrieredellosport.it/live/SerieA/probabili-formazioni-776879.shtml";
			org.jsoup.nodes.Document doc = Jsoup.connect(link).get();
			
			partita = ElaboraFormazioniHTML.generaMatch(doc, link, "corrieredellosport");
			partita.printMatch(true);
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
